package com.nbst.dao.mapper.mes;

import java.util.List;
import java.util.Map;

import com.nbst.dao.base.mapper.BaseMapper;
import com.nbst.model.mes.ApplyItems;
import com.nbst.model.mes.DispatchedWorkers;

/**
 * @ClassName: TApplyItemsMapper
 * @Description:物料申请单t_apply_item的mapper
 * @author: HuXinshuai
 * @date: 2018年10月26日 下午5:07:56
 * @Copyright: 宁波沙塔. All rights reserved.
 */
public interface ApplyItemsMapper extends BaseMapper<ApplyItems> {

	/**
	 * 根据合并领料单id关闭领料申请单
	 * 
	 * @param map
	 * @return int
	 * @author King
	 * @date 2019年3月4日
	 */
	int updateCloseStatus(Integer id);

	/**
	 * 根据派工单id数组，修改是否合并状态
	 * 
	 * @param map
	 *            ids fIsMerge
	 * @return int
	 * @author King
	 * @date 2019年3月7日
	 */
	int updateIsMergeStatus(Map<String, Object> map);

	/**
	 * 根据合并领料表的id查询出已完成基本领料的物料申请单id
	 * 
	 * @param id
	 * @return List<Integer>
	 * @author King
	 * @date 2019年3月23日
	 */
	List<Integer> getNotUpDateCardQty(Integer id);

	/**
	 * 获取物料申请单与仓库关系表中的物料申请单id
	 * 
	 * @return List<Integer>
	 * @author King
	 * @date 2019年4月17日
	 */
	List<Integer> getApplyStockTempId();

	Integer deleteApplyStockTemp(Map<String, Object> map);

	/**
	 * 根据物料申请单id查询生产任务单id
	 * 
	 * @param id
	 * @return Integer
	 * @author King
	 * @date 2019年5月28日
	 */
	Integer getIcmoId(Integer id);

	/**
	 * 根据物料申请单id查询生产任务单id 外协发料
	 * 
	 * @param id
	 * @return Integer
	 * @author King
	 * @date 2019年5月28日
	 */
	Integer getIcmoIdSub(Integer id);

	/**
	 * 根据派工单id查询
	 * 
	 * @param id
	 * @return ApplyItems
	 * @author King
	 * @date 2019年6月26日
	 */
	ApplyItems findById(Integer id);

	/**
	 * 根据ApplyId将物料申请单的fClosed置1
	 * 
	 * @param applyIds
	 */
	void updateFClosedStatus(List<Integer> applyIds);

	/**
	 * 根据ApplyId获取派工单信息
	 * 
	 * @param map
	 * @return
	 */
	DispatchedWorkers getDispatchedWorkersByApplyId(Map<String, Object> map);

	/**
	 * 根据派工id查询投料信息
	 * 
	 * @param map
	 * @return
	 */
	List<Map<String, Object>> findApplyByDis(Integer id);

	/**
	 * 根据委外转出表id查询投料信息
	 * 
	 * @param map
	 * @return
	 */
	List<Map<String, Object>> findApplyBySubcOut(Integer id);

	/**
	 * 根据条件查询
	 * 
	 * @param map
	 * @return List<ApplyItems>
	 * @author King
	 * @date 2019年10月23日
	 */
	List<ApplyItems> findByCondition1(Map<String, Object> map);

	/**
	 * 根据派工单id获取物料申请单id
	 * 
	 * @param id
	 * @return Integer
	 * @author King
	 * @date 2020年3月24日
	 */
	Integer getApplyId(Integer id);

	/**
	 * 根据派工单id获取物料申请单合并标志
	 * 
	 * @param fDispatchId
	 * @return Integer
	 * @author King
	 * @date 2020年5月11日
	 */
	Integer getIsMergeByDispatchId(Integer fDispatchId);

	/**
	 * 根据合并领料单id获取摆线液压马达清洗派工单的票数
	 * 
	 * @param map
	 * @return Integer
	 * @author King
	 * @date 2020年5月19日
	 */
	Integer getDispatchTotal(Map<String, Object> map);

	List<ApplyItems> findByMergeId(Integer id);

	/**
	 * 
	 * @param fApplyId
	 * @return Integer
	 * @author King
	 * @date 2020年5月22日
	 */
	Integer updateClosedStatus(Integer fApplyId);

	/**
	 * 获取已发料的物料申请单记录数
	 * 
	 * @param fDispatchId
	 * @return Integer
	 * @author King
	 * @date 2021年3月14日
	 */
	Integer getApplyItemCount(Integer fDispatchId);

	/**
	 * 获取合并的物料申请单记录数
	 * 
	 * @param fDispatchId
	 * @return Integer
	 * @author King
	 * @date 2021年3月14日
	 */
	Integer getApplyItemMergeCount(Integer fDispatchId);

}